home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 February: Tool Chest / Dev.CD Feb 95 / Dev.CD Feb 95.toast / Tool Chest / Interfaces / Universal Interfaces 2.0a3 / Universal AIncludes / DatabaseAccess.a < prev    next >
Encoding:
Text File  |  1994-11-11  |  6.2 KB  |  340 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        DatabaseAccess.a
  3. ;
  4. ;    Copyright:    © 1984-1994 by Apple Computer, Inc.
  5. ;                All rights reserved.
  6. ;
  7. ;    Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8. ;
  9. ;    Bugs?:        If you find a problem with this file, send the file and version
  10. ;                information (from above) and the problem description to:
  11. ;
  12. ;                    Internet:    apple.bugs@applelink.apple.com
  13. ;                    AppleLink:    APPLE.BUGS
  14. ;
  15. ;
  16.  
  17.     IF &TYPE('__DATABASEACCESS__') = 'UNDEFINED' THEN
  18. __DATABASEACCESS__ SET 1
  19.  
  20.  
  21.     IF &TYPE('__RESOURCES__') = 'UNDEFINED' THEN
  22.     include 'Resources.a'
  23.     ENDIF
  24. ;        include 'Types.a'                                            ;
  25. ;            include 'ConditionalMacros.a'                            ;
  26. ;        include 'MixedMode.a'                                        ;
  27. ;        include 'Files.a'                                            ;
  28. ;            include 'OSUtils.a'                                    ;
  29. ;                include 'Memory.a'                                    ;
  30.  
  31. typeNone                        EQU        'none'
  32. typeDate                        EQU        'date'
  33. typeTime                        EQU        'time'
  34. typeTimeStamp                    EQU        'tims'
  35. typeDecimal                        EQU        'deci'
  36. typeMoney                        EQU        'mone'
  37. typeVChar                        EQU        'vcha'
  38. typeVBin                        EQU        'vbin'
  39. typeLChar                        EQU        'lcha'
  40. typeLBin                        EQU        'lbin'
  41. typeDiscard                        EQU        'disc'
  42. ; "dummy" types for DBResultsToText 
  43. typeUnknown                        EQU        'unkn'
  44. typeColBreak                    EQU        'colb'
  45. typeRowBreak                    EQU        'rowb'
  46. ; pass this in to DBGetItem for any data type 
  47. typeAnyType                        EQU        0
  48.  
  49. ; infinite timeout value for DBGetItem 
  50. ; messages for status functions for DBStartQuery 
  51. kDBUpdateWind                    EQU        0
  52. kDBAboutToInit                    EQU        1
  53. kDBInitComplete                    EQU        2
  54. kDBSendComplete                    EQU        3
  55. kDBExecComplete                    EQU        4
  56. kDBStartQueryComplete            EQU        5
  57.  
  58. ; messages for status functions for DBGetQueryResults 
  59. kDBGetItemComplete                EQU        6
  60. kDBGetQueryResultsComplete        EQU        7
  61. kDBWaitForever                    EQU        -1
  62. ;  flags for DBGetItem  
  63. kDBLastColFlag                    EQU        $0001
  64. kDBNullFlag                        EQU        $0004
  65.  
  66. DBAsyncParamBlockRec     RECORD    0
  67. completionProc             ds.l    1                                    ; pointer to completion routine 
  68. result                     ds.w    1                                    ; result of call 
  69. userRef                     ds.l    1                                    ; for application's use 
  70. ddevRef                     ds.l    1                                    ; for ddev's use 
  71. reserved                 ds.l    1                                    ; for internal use 
  72. sizeof                     EQU    18
  73.                         ENDR
  74.  
  75. ResListElem             RECORD    0
  76. theType                     ds.l    1                                    ; resource type 
  77. id                         ds.w    1                                    ; resource id 
  78. sizeof                     EQU    6
  79.                         ENDR
  80.  
  81. ; structure for query list in QueryRecord 
  82. QueryRecord             RECORD    0
  83. version                     ds.w    1                                    ; version 
  84. id                         ds.w    1                                    ; id of 'qrsc' this came from 
  85. queryProc                 ds.l    1                                    ; handle to query def proc 
  86. ddevName                 ds.l    16                                ; ddev name 
  87. host                     ds.l    64                                ; host name 
  88. user                     ds.l    64                                ; user name 
  89. password                 ds.l    64                                ; password 
  90. connStr                     ds.l    64                                ; connection string 
  91. currQuery                 ds.w    1                                    ; index of current query 
  92. numQueries                 ds.w    1                                    ; number of queries in list 
  93. queryList                 ds.l    1                                    ; handle to array of handles to text 
  94. numRes                     ds.w    1                                    ; number of resources in list 
  95. resList                     ds.l    1                                    ; handle to array of resource list elements 
  96. dataHandle                 ds.l    1                                    ; for use by query def proc 
  97. refCon                     ds.l    1                                    ; for use by application 
  98. sizeof                     EQU    1118
  99.                         ENDR
  100.  
  101. ; structure of column types array in ResultsRecord 
  102. DBColInfoRecord         RECORD    0
  103. len                         ds.w    1
  104. places                     ds.w    1
  105. flags                     ds.w    1
  106. sizeof                     EQU    6
  107.                         ENDR
  108.  
  109. ResultsRecord             RECORD    0
  110. numRows                     ds.w    1                                    ; number of rows in result 
  111. numCols                     ds.w    1                                    ; number of columns per row 
  112. colTypes                 ds.l    1                                    ; data type array 
  113. colData                     ds.l    1                                    ; actual results 
  114. colInfo                     ds.l    1                                    ; DBColInfoRecord array 
  115. sizeof                     EQU    16
  116.                         ENDR
  117.  
  118.     IF GENERATING68K THEN
  119.         Macro
  120.         _InitDBPack
  121.             move.w    #$0004,-(sp)
  122.             move.w    #$0100,d0
  123.             dc.w     $A82F
  124.         EndM
  125.     ELSE
  126.         IMPORT    InitDBPack
  127.     ENDIF
  128.  
  129.     IF GENERATING68K THEN
  130.         Macro
  131.         _DBInit
  132.             move.w    #$0E02,d0
  133.             dc.w     $A82F
  134.         EndM
  135.     ELSE
  136.         IMPORT    DBInit
  137.     ENDIF
  138.  
  139.     IF GENERATING68K THEN
  140.         Macro
  141.         _DBEnd
  142.             move.w    #$0403,d0
  143.             dc.w     $A82F
  144.         EndM
  145.     ELSE
  146.         IMPORT    DBEnd
  147.     ENDIF
  148.  
  149.     IF GENERATING68K THEN
  150.         Macro
  151.         _DBGetConnInfo
  152.             move.w    #$1704,d0
  153.             dc.w     $A82F
  154.         EndM
  155.     ELSE
  156.         IMPORT    DBGetConnInfo
  157.     ENDIF
  158.  
  159.     IF GENERATING68K THEN
  160.         Macro
  161.         _DBGetSessionNum
  162.             move.w    #$0605,d0
  163.             dc.w     $A82F
  164.         EndM
  165.     ELSE
  166.         IMPORT    DBGetSessionNum
  167.     ENDIF
  168.  
  169.     IF GENERATING68K THEN
  170.         Macro
  171.         _DBSend
  172.             move.w    #$0706,d0
  173.             dc.w     $A82F
  174.         EndM
  175.     ELSE
  176.         IMPORT    DBSend
  177.     ENDIF
  178.  
  179.     IF GENERATING68K THEN
  180.         Macro
  181.         _DBSendItem
  182.             move.w    #$0B07,d0
  183.             dc.w     $A82F
  184.         EndM
  185.     ELSE
  186.         IMPORT    DBSendItem
  187.     ENDIF
  188.  
  189.     IF GENERATING68K THEN
  190.         Macro
  191.         _DBExec
  192.             move.w    #$0408,d0
  193.             dc.w     $A82F
  194.         EndM
  195.     ELSE
  196.         IMPORT    DBExec
  197.     ENDIF
  198.  
  199.     IF GENERATING68K THEN
  200.         Macro
  201.         _DBState
  202.             move.w    #$0409,d0
  203.             dc.w     $A82F
  204.         EndM
  205.     ELSE
  206.         IMPORT    DBState
  207.     ENDIF
  208.  
  209.     IF GENERATING68K THEN
  210.         Macro
  211.         _DBGetErr
  212.             move.w    #$0E0A,d0
  213.             dc.w     $A82F
  214.         EndM
  215.     ELSE
  216.         IMPORT    DBGetErr
  217.     ENDIF
  218.  
  219.     IF GENERATING68K THEN
  220.         Macro
  221.         _DBBreak
  222.             move.w    #$050B,d0
  223.             dc.w     $A82F
  224.         EndM
  225.     ELSE
  226.         IMPORT    DBBreak
  227.     ENDIF
  228.  
  229.     IF GENERATING68K THEN
  230.         Macro
  231.         _DBGetItem
  232.             move.w    #$100C,d0
  233.             dc.w     $A82F
  234.         EndM
  235.     ELSE
  236.         IMPORT    DBGetItem
  237.     ENDIF
  238.  
  239.     IF GENERATING68K THEN
  240.         Macro
  241.         _DBUnGetItem
  242.             move.w    #$040D,d0
  243.             dc.w     $A82F
  244.         EndM
  245.     ELSE
  246.         IMPORT    DBUnGetItem
  247.     ENDIF
  248.  
  249.     IF GENERATING68K THEN
  250.         Macro
  251.         _DBKill
  252.             move.w    #$020E,d0
  253.             dc.w     $A82F
  254.         EndM
  255.     ELSE
  256.         IMPORT    DBKill
  257.     ENDIF
  258.  
  259.     IF GENERATING68K THEN
  260.         Macro
  261.         _DBGetNewQuery
  262.             move.w    #$030F,d0
  263.             dc.w     $A82F
  264.         EndM
  265.     ELSE
  266.         IMPORT    DBGetNewQuery
  267.     ENDIF
  268.  
  269.     IF GENERATING68K THEN
  270.         Macro
  271.         _DBDisposeQuery
  272.             move.w    #$0210,d0
  273.             dc.w     $A82F
  274.         EndM
  275.     ELSE
  276.         IMPORT    DBDisposeQuery
  277.     ENDIF
  278.  
  279.     IF GENERATING68K THEN
  280.         Macro
  281.         _DBStartQuery
  282.             move.w    #$0811,d0
  283.             dc.w     $A82F
  284.         EndM
  285.     ELSE
  286.         IMPORT    DBStartQuery
  287.     ENDIF
  288.  
  289.     IF GENERATING68K THEN
  290.         Macro
  291.         _DBGetQueryResults
  292.             move.w    #$0A12,d0
  293.             dc.w     $A82F
  294.         EndM
  295.     ELSE
  296.         IMPORT    DBGetQueryResults
  297.     ENDIF
  298.  
  299.     IF GENERATING68K THEN
  300.         Macro
  301.         _DBResultsToText
  302.             move.w    #$0413,d0
  303.             dc.w     $A82F
  304.         EndM
  305.     ELSE
  306.         IMPORT    DBResultsToText
  307.     ENDIF
  308.  
  309.     IF GENERATING68K THEN
  310.         Macro
  311.         _DBInstallResultHandler
  312.             move.w    #$0514,d0
  313.             dc.w     $A82F
  314.         EndM
  315.     ELSE
  316.         IMPORT    DBInstallResultHandler
  317.     ENDIF
  318.  
  319.     IF GENERATING68K THEN
  320.         Macro
  321.         _DBRemoveResultHandler
  322.             move.w    #$0215,d0
  323.             dc.w     $A82F
  324.         EndM
  325.     ELSE
  326.         IMPORT    DBRemoveResultHandler
  327.     ENDIF
  328.  
  329.     IF GENERATING68K THEN
  330.         Macro
  331.         _DBGetResultHandler
  332.             move.w    #$0516,d0
  333.             dc.w     $A82F
  334.         EndM
  335.     ELSE
  336.         IMPORT    DBGetResultHandler
  337.     ENDIF
  338.  
  339.     ENDIF ; __DATABASEACCESS__
  340.